Polymorphic Type Analysis in Logic Programs by Abstract Intepretation

نویسنده

  • Lunjin Lu
چکیده

interpretation frameworks. It is also fully automated in that its only inputs are theprogram to be analysed and type de nitions for the function symbols in the program.References[1] H. Azzoune. Type inference in Prolog. In E. Lusk and R. Overbeek, editors, Proceedingsof the ninth International Conference on Automated Deduction, pages 258{277, Argonne,Illinois, USA, May 23-26 1988. Springer-Verlag. Springer-Verlag Lecture Notes in Com-puter Science 310.[2] R. Barbuti and R. Giacobazzi. A bottom-up polymorphic type inference in logic pro-gramming. Science of computer programming, 19(3):133{181, 1992.[3] A. Bossi, M. Gabbrielli, G. Levi, and M. Meo. A compositional semantics for logicprograms. Journal of Theoretical Computer Science, 122(1-2):3{47, 1994.[4] M. Bruynooghe. Adding redundancy to obtain more reliable and more readable Prologprograms. In Proceedings of the rst International Logic Programming Conference, pages129{133, Marseille, France, 1982.[5] M. Bruynooghe. A practical framework for the abstract interpretation of logic progams.Journal of Logic Programming, 10(2):91{124, 1991.[6] M. Bruynooghe, G. Janssens, A. Callebaut, and B. Demoen. Abstract interpretation: to-wards the global optimisation of Prolog programs. In Proceedings of the 1987 Symposiumon Logic Programming, pages 192{204. The IEEE Society Press, 1987.[7] L. Cardelli and P.Wegner. On understanding types, data abstraction, and polymorphism.ACM computing surveys, 17(4):471{522, 1985.[8] W.F. Clocksin and C. Mellish. Programming in Prolog. Springer-Verlag, 1984.[9] M. Codish, D. Dams, and Yardeni E. Derivation and safety of an abstract uni cationalgorithm for groundness and aliasing analysis. In K. Furukawa, editor, Proceedings ofthe Eighth International Conference on Logic Programming, pages 79{93, Paris, France,1991. The MIT Press.[10] M. Codish and B. Demoen. Deriving polymorphic type dependencies for logic programsusing multiple incarnations of Prop. In Proceedings of the First Symposium on StaticAnalysis, volume 864 of Lecture Notes in Computer Science, pages 281{297. Springer-Verlag, September 1994.[11] M.M. Corsini and K. Musumbu. Type inference: a new approach. Journal of TheoreticalComputer Science, 119(1):23{38, 1993. 53 [12] A. Cortesi, B. Le Charlier and P. van Hentenryck. Combinations of Abstract Domainsfor Logic Programming. The Conference Record of the 21st ACM SIGPLAN-SIGACTSymposium on Principles of Programming Languages, pages 227{239, Portland, Oregon,January 17-21, 1994.[13] P. Cousot and R. Cousot. Abstract interpretation: a uni ed framework for static analysisof programs by construction or approximation of xpoints. In Proceedings of the fourthannual ACM symposium on Principles of programming languages, pages 238{252, LosAngeles, California, 1977.[14] P. Cousot and R. Cousot. Abstract interpretation and application to logic programs.Journal of Logic Programming, 13(1, 2, 3 and 4):103{179, 1992.[15] M. A. Covington, D. Nute, and A. Vellino. PROLOG PROGRAMMING IN DEPTH.Scott, Foresman & Co., 1988.[16] P.W. Dart and J. Zobel. A regular type language for logic programs. In Frank Pfenning,editor, Types in Logic Programming. MIT Press, Cambridge,Massachusetts, 1992.[17] M. Falaschi, G. Levi, and C. Palamidessi. Declarative modelling of the operationalbehavior of logic programs. Theoretical Computer Science, 69:289{318, 1989.[18] T.W. Fruehwirth. Using meta-interpreters for polymorphic type checking. InM. Bruynooghe, editor, Proceedings of the Second Workshop on Meta-programming inLogic, pages 339{351, Leuven, Belgium, April 4-6 1990.[19] N. Heintze and J. Ja ar. A nite presentation theorem for approximating logic programs.In The seventh Annual ACM Symposium on Principles of Programming Languages, SanFrancisco, California, January 17-19 1990. The ACM Press.[20] N. Heintze and J. Ja ar. Semantic types for logic programs. In Frank Pfenning, editor,Types in Logic Programming. MIT Press, Cambridge,Massachusetts, 1992.[21] M. Hermenegildo, R. Warren, and S.K. Debray. Global ow analysis as a practicalcompilation tool. Journal of Logic Programming, 13(1, 2, 3 and 4):349{366, 1992.[22] K. Horiuchi and T. Kanamori. Polymorphic type inference in Prolog by abstract inter-pretation. In K. Furukawa, H. Tanaka, and T. Fujisaki, editors, Proceedings of the SixthConference on Logic Programming, pages 195{214, Tokyo, June 1987.[23] D. Jacobs and A. Langen. Static analysis of logic programs for independent and paral-lelism. Journal of Logic Programming, 13(1, 2, 3 and 4):291{314, 1992.[24] G. Janssens and M. Bruynooghe. Deriving descriptions of possible values of programvariables by means of abstract interpretation. Journal of Logic Programming, 13(1, 2, 3and 4):205{258, 1992.54 [25] N.D. Jones and H. S ndergarrd. A semantics-based framework for abstract interpretationof Prolog. In S. Abramsky and C. Hankin, editors, Abstract interpretation of declarativelanguages, pages 123{142. Ellis Horwood Limited, 1987.[26] T. Kanamori. Abstract interpretation based on Alexander templates. Journal of LogicProgramming, 15(1 & 2):31{54, January 1993.[27] T. Kanamori and K. Horiuchi. Type inference in Prolog and its application. In Proceed-ings of the ninth International Joint Conference on Arti cial Intelligence, pages 704{707,1985.[28] T. Kanamori and T. Kawamura. Abstract interpretation based on OLDT resolution.Journal of Logic Programming, 15(1 & 2):1{30, January 1993.[29] J.W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1987.[30] L. Lu. Abstract interpretation, bug detection and bug diagnosis in normal logic programs.PhD thesis, University of Birmingham, 1994.[31] L. Lu. Type analysis of logic programs in the presence of type de nitions. In Proceedingsof the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based ProgramManipulation (PEPM'95), pages 241{252, La Jolla, California, June 21-23 1995. TheACM Press.[32] K. Marriott and H. S ndergaard. Semantics-based data ow analysis of logic programs.In G. Ritter, editor, Information Processing'89. North-Holland, 1989.[33] K. Marriott and H. S ndergaard. Bottom-up data ow analysis of normal logic programs.Journal of Logic Programming, 13(1, 2, 3 and 4):181{204, 1992.[34] K. Marriott. Frameworks for abstract interpretation. Acta Informatica, 30(2):103{129,1993.[35] K. Marriott, H. S ndergaard and N.D. Jones. Denotational Abstract Interpretation ofLogic Programs. ACM Transactions on Programming Languages and Systems, 16(3):607{648, 1994.[36] C. Mellish. Abstract interpretation of Prolog programs. In S. Abramsky and C. Hankin,editors, Abstract interpretation of declarative languages, pages 181{198. Ellis HorwoodLimited, 1987.[37] P. Mishra. Towards a theory of types in Prolog. In Proceedings of the IEEE internationalSymposium on Logic Programming, pages 289{298. IEEE, 1984.[38] K. Muthukumar and M. Hermenegildo. Compile-time derivation of variable dependencyusing abstract interpretation. Journal of Logic Programming, 13(1, 2, 3 and 4):315{347,1992.55 [39] A. Mycroft and R.A. O'Keefe. A polymorphic type system for Prolog. Arti cial Intelli-gence, 23:295{307, 1984.[40] U. Nilsson. Towards a framework for the abstract interpretation of loic programs. InP. Deransart, B. Lorho, and J. Maluszynski, editors, Proceedings of the InternationalWorkshop on Programming Language Implementation and Logic Programming, pages68{82, Orleans, France, 1988. Springer-Verlag.[41] R. A. O'Keefe. Finite xed-point problems. In J.-L. Lassez, editor, Proceedings of thefourth International Conference on Logic programming, volume 2, pages 729{743. TheMIT Press, 1987.[42] T. Sato and H. Tamaki. Enumeration of success patterns in logic programs. Journal ofTheoretical Computer Science, 34(1):227{240, 1984.[43] H. S ndergaard. An application of abstract interpretation of logic programs: occur checkproblem. In Proceedings of the European symposium on programming, pages 324{338.Springer-Verlag, 1986.[44] L. Sterling and E. Shapiro. The Art of Prolog. The MIT Press, 1986.[45] J. Tiuryn. Type inference problems: A survey. In B. Roven, editor, Proceedings of theFifteenth International Symposium on Mathematical Foundations of Computer Science,pages 105{120, Berlin,Heidelberg, 1990. Springer-Verlag.[46] M.H. van Emden and R.A. Kowalski. The semantics of predicate logic as a programminglanguage. Arti cial Intelligence, 23(10):733{742, 1976.[47] P. van Hentenryck, A. Cortesi and B. Le Charlier. Type Analysis of Prolog Using TypeGraphs. Journal of Logic Programming, 22(3):179{209, 1995.[48] J. Xu and D.S. Warren. A type inference system for Prolog. In R.A. Kowalski andK.A. Bowen, editors, Proceedings of the fth International Conference and Symposiumon Logic Programming, pages 604{619. The MIT Press, 1988.[49] E. Yardeni and E. Shapiro. A type system for logic programs. Journal of Logic Program-ming, 10(2):125{153, 1991.[50] J. Zobel. Derivation of polymorphic types for Prolog programs. In J.-L. Lassez, editor,Logic Programming: Proceedings of the fourth international conference, pages 817{838,Australia, 1987.56

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Polymorphic Type Analysis in Logic Programs by Abstract Interpretation1

domains and their associated abstract operators. Some examples are to be found in [6, 22, 24, 27, 28]. Most type analysis systems infer descriptive types. A descriptive type is a description of a set of terms by an expression in a type language. Different type analysis systems may use different type languages. Most of them use regular types or deterministic regular types [16] in one form or ano...

متن کامل

Termination Analysis with Types Is More Accurate

In this paper we show how we can use size and groundness analyses lifted to regular and (polymorphic) Hindley/Milner typed programs to determine more accurate termination of (type correct) programs. Type information for programs may be either inferred automatically or declared by the programmer. The analysis of the typed logic programs is able to completely reuse a framework for termination ana...

متن کامل

Deriving Polymorphic Type Dependencies for Logic Programs Using Multiple Incarnations of Prop

This paper illustrates the application of abstract compilation using multiple incarnations of the domain Prop in deriving type dependencies for logic programs. We illustrate how dependencies can be derived in the presence of both monomorphic and polymorphic type information. Type dependencies generalize the recently proposed notion of directional types as well as the more common notion of groun...

متن کامل

Approximating Constraint Logic Programs Using Polymorphic Types and Regular Descriptions

Approximate descriptions of the success set of a program have many uses in program development and optimisation. For untyped logic programming languages, regular approximation is a practical and useful tool. In this paper we consider the problem of approximating the meaning of programs in which some (polymorphic) type information is given. This situation can arise in constraint logic programmin...

متن کامل

Pos(T): Analyzing Dependencies in Typed Logic Programs

Dependencies play a major role in the analysis of program properties. The analysis of groundness dependencies for logic programs using the class of positive Boolean functions is a main applications area. The precision of such an analysis can be improved through the integration of either pattern information or type information. This paper develops an approach in which type information is exploit...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • J. Log. Program.

دوره 36  شماره 

صفحات  -

تاریخ انتشار 1998